<?php
/**
 * Copyright (c) Enalean, 2018. All Rights Reserved.
 *
 * This file is a part of Tuleap.
 *
 * Tuleap is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Tuleap is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Tuleap. If not, see <http://www.gnu.org/licenses/>.
 */

namespace Tuleap\GitLFS\Batch\Response\Action;

use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
use PHPUnit\Framework\TestCase;
use Tuleap\Authentication\SplitToken\SplitToken;
use Tuleap\Authentication\SplitToken\SplitTokenFormatter;
use Tuleap\Cryptography\ConcealedString;

class BatchResponseActionContentTest extends TestCase
{
    use MockeryPHPUnitIntegration;

    public function testActionContentHasAnAuthenticationHeader()
    {
        $action_href = \Mockery::mock(BatchResponseActionHref::class);
        $action_href->shouldReceive('getHref')->andReturns('https://example.com/action');
        $authorization_token    = \Mockery::mock(SplitToken::class);
        $token_header_formatter = \Mockery::mock(SplitTokenFormatter::class);
        $token_header_formatter->shouldReceive('getIdentifier')->andReturns(new ConcealedString('identifier'));
        $action_content = new BatchResponseActionContent(
            $action_href,
            $authorization_token,
            $token_header_formatter,
            10000
        );

        $action_content_serialized = json_decode(json_encode($action_content));
        $this->assertTrue(isset($action_content_serialized->header->Authorization));
    }
}
